iT邦幫忙

0

Validating data received via the Web App by PHP

  • 分享至 

  • xImage
  •  
function buildDataCheckString(array $init_data): string {
    ksort($init_data);

    $data_check_array = [];
    foreach ($init_data as $key => $val) {
        $data_check_array[] = "{$key}={$val}";
    }

    return implode("\n", $data_check_array);
}

function verifyUser(string $init_data_string, string $bot_token): bool {
    parse_str($init_data_string, $init_data);

    if (
        !isset($init_data['hash'])
        or !isset($init_data['auth_date'])
        or !isset($init_data['query_id'])
        or !isset($init_data['user'])
    ) return false;

    $hash = $init_data['hash'];
    unset($init_data['hash']);

    $data_check_string =  buildDataCheckString($init_data);

    $secret_key = hash_hmac('sha256', $bot_token, "WebAppData", true);
    $secret_hash = hash_hmac('sha256', $data_check_string, $secret_key);

    return $hash === $secret_hash;
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言